import 'package:enjoy_plus_test/utils/eventbus.dart';
import 'package:enjoy_plus_test/utils/toast.dart';
import 'package:flutter/material.dart';
import 'package:logger/logger.dart';

import '../../utils/http.dart';

class MinePage extends StatefulWidget {

   MinePage({super.key,required this.currentIndex});
  int currentIndex;
  @override
  State<MinePage> createState() => _MinePageState();
}

class _MinePageState extends State<MinePage> {
  var  logger=Logger();
  Map userInfo={
    'id':'',
    'avatar':'',
    'nickName':''
  };
  // 菜单数据
  final List menuList = [
    {
      "title": "我的房屋",
      "icon": "assets/images/house_profile_icon@2x.png",
    },
    {
      "title": "我的报修",
      "icon": "assets/images/repair_profile_icon@2x.png",
    },
    {
      "title": "访客记录",
      "icon": "assets/images/visitor_profile_icon@2x.png",
    }
  ];
  void getProfile()async{
    var res = await http.get('/userInfo');
    if (res['code'] != 10000) return ToastUtil.showError('获取数据失败');
    setState(() {
      // userInfo=res['data'];
      // logger.i(userInfo);
      userInfo = {
        'id': res['data']['id']?.toString() ?? '', // 确保转换为 String
        'avatar': res['data']['avatar']?.toString() ?? '',
        'nickName': res['data']['nickName']?.toString() ?? '未设置昵称',
      };
    });
  }
  @override
  void initState() {
    // TODO: implement initState
    super.initState();
    eventBus.on<RefreshMine>().listen((event){
      getProfile();
    });
  }
@override
  void didUpdateWidget(covariant MinePage oldWidget) {
    // TODO: implement didUpdateWidget
    super.didUpdateWidget(oldWidget);
    // 仅当 currentIndex 变化且新值为 1 时触发
    if(oldWidget.currentIndex != widget.currentIndex &&widget.currentIndex==1){
      getProfile();
    }
  }
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      backgroundColor: const Color.fromARGB(200, 85, 145, 175),
      appBar: AppBar(
        title: const Text(
          '我的',
          style: TextStyle(color: Colors.white),
        ),
        backgroundColor: Colors.transparent,
        centerTitle: true,
      ),
      body: ListView(
        children: [
          // 个人信息
          Container(
            padding: const EdgeInsets.all(10),
            child: GestureDetector(
              onTap: () {
                Navigator.pushNamed(context, '/profile',arguments: userInfo);
              },
              child: Row(
                children: [
                  ClipRRect(
                    borderRadius: BorderRadius.circular(50.0),
                    child: userInfo['avatar']!=''?Image.network(userInfo['avatar'],width: 50,height: 50):Image.asset(
                      'assets/images/avatar_1.jpg',
                      width: 50,
                      height: 50,
                    ),
                  ),
                  const SizedBox(width: 10),
                   Text(userInfo['nickName']??'用户名',
                      style: TextStyle(fontSize: 16, color: Colors.white)),
                  const Spacer(),
                  const Text(
                    '去完善信息',
                    style: TextStyle(color: Colors.white),
                  ),
                  const Icon(
                    Icons.arrow_forward_ios,
                    color: Colors.white,
                    size: 13,
                  )
                ],
              ),
            ),
          ),
          Container(
            padding: const EdgeInsets.all(15),
            margin: const EdgeInsets.symmetric(vertical: 20, horizontal: 10),
            decoration: BoxDecoration(
              color: Colors.white,
              borderRadius: BorderRadius.circular(10),
            ),
            child: Column(
              children: menuList
                  .map(
                    (item) => SizedBox(
                  height: 50,
                  child: Row(
                    children: [
                      Row(
                        children: [
                          Image.asset(
                            item['icon'],
                            width: 20,
                            height: 20,
                          ),
                          const SizedBox(
                            width: 10,
                          ),
                          Text(
                            item['title'],
                            style: const TextStyle(fontSize: 16),
                          )
                        ],
                      ),
                      const Spacer(),
                      const Icon(
                        Icons.arrow_forward_ios,
                        size: 12,
                        color: Colors.grey,
                      )
                    ],
                  ),
                ),
              )
                  .toList(),
            ),
          )
        ],
      ),
    );
  }
}